#ifndef GUARD_VECTEUR_H
#define GUARD_VECTEUR_H

#include "Point.h"
#include <Math.h>


class Vecteur : public Point {

    public :

	Vecteur();
    Vecteur(float x, float y, float z);
    Vecteur(Point p);

	// vecteur pour aller de a vers b
	Vecteur(Point a, Point b);

    virtual void afficher(std::ostream &flux) const;
    
	float & operator[] (unsigned i);

    float pScalaire (Vecteur v);

	Vecteur pVectoriel(Vecteur v);

	float longueur() const;

    Vecteur plus(Vecteur v);

	Vecteur operator+(Vecteur v);
	
	Vecteur& operator+= (Vecteur v);
	
	Vecteur& operator-= (Vecteur v);

	Vecteur operator-(Vecteur v) const;

	Vecteur operator-();

	Vecteur moins(Vecteur v);

	float cos(Vecteur v);

    void normer();


	Vecteur perpendiculaire();


};

float operator*(Vecteur v1, Vecteur v2);
Vecteur operator*(Vecteur v, float f);
Vecteur operator*(float f, Vecteur v);

Vecteur operator/(Vecteur v, float f);
Vecteur operator/(float f, Vecteur v);


#endif
